#pragma once
#include <SDL.h>
#include "EpocEvent.h"
#include "BaseObject.h"


namespace EPOC
{
	class GameCore : public EpocEvent
	{
	public:
		GameCore();
		virtual ~GameCore();

		void Run();

	protected:
		virtual int SetViewport( int width, int height );
		virtual void InitOpenGL();
		virtual int Initialize();
		virtual int Update();
		virtual void Render();

		inline const SDL_Window* GetSDLWindow() {return displayWindow;}
		inline SDL_Renderer* GetSDLRenderer() {return displayRenderer;}
		inline const SDL_RendererInfo* GetSDLRendererInfo() {return &displayRendererInfo;}

		//bool OnInit();
        void OnEvent(SDL_Event* Event);
        void OnExit(); 
        //void OnLoop();
        //void OnRender();
        //void OnCleanup();

	private:
		SDL_Window* displayWindow;
		SDL_Renderer* displayRenderer;
		SDL_RendererInfo displayRendererInfo;

		bool running;

		

	};
};

